package com.example.mall.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.example.mall.domain.Order;

import com.example.mall.dto.KillPlaceOrderDto;
import com.example.mall.dto.OrderDto;
import com.example.mall.dto.PlaceOrderDto;
import com.example.mall.query.OrderQuery;
import com.example.mall.query.PageDTO;
import com.example.mall.result.JSONResult;

import java.util.List;

/**
 * <p>
 * 订单主表 服务类
 * </p>
 *
 * @author whale
 * @since 2025-05-09
 */
public interface IOrderService extends IService<Order> {

    // 普通下单
    JSONResult placeOrder(PlaceOrderDto dto);

    // 秒杀下单
    JSONResult killPlaceOrder(KillPlaceOrderDto dto);

    //根据单号查询订单
    Object selectByOrderNo(String orderNo);

    // 分页查询订单主表信息
    PageDTO<OrderDto> queryPage(OrderQuery orderQuery);

    // 根据id查询订单主表信息
    Order queryOrderById(Long orderId);

    // 查询全部订单主表信息
    List<Order> queryOrderList();

    // 修改订单主表信息
    void update(OrderDto orderDto);
    // 删除订单主表信息
    void delete(Long orderId);
    // 批量删除订单主表信息
    void deleteBatch(List<Long> orderIds);
    // 新增订单主表
    void insert(OrderDto orderDto);
}
